package top.bug.blog.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import top.bug.blog.entity.dto.common.BatchRequest;
import top.bug.blog.entity.dto.common.SingleRequest;
import top.bug.blog.entity.dto.source.*;
import top.bug.blog.entity.po.Source;
import top.bug.blog.entity.po.SourceGroup;
import top.bug.blog.entity.vo.source.SourceCountVO;

import java.util.List;

/**
 * @author <a href="https://github.com/jiusi66">九思.</a>
 * @email 10837907@qq.com
 * @from <a href="https://www.52bug.top">递归茶馆-www.52bug.top</a>
 * @description 素材 接口
 */
public interface SourceService extends IService<Source> {

    /**
     * 获取素材列表
     */
    Page<Source> getList(SourceQueryRequest queryRequest);

    /**
     * 获取素材数量
     */
    SourceCountVO getSourceCount();

    /**
     * 批量删除素材
     */
    Boolean batchDelete(BatchRequest batchRequest);

    /**
     * 上传素材
     */
    List<String> uploadSource(SourceUploadRequest uploadRequest);

    /**
     * 创建素材分组
     */
    Boolean createGroup(SourceGroupAddRequest addRequest);

    /**
     * 删除素材分组
     */
    Boolean deleteGroup(SingleRequest singleRequest);

    /**
     * 修改素材分组
     */
    Boolean updateGroup(SourceGroupUpdateRequest updateRequest);

    /**
     * 获取素材分组
     */
    List<SourceGroup> getGroups();

    /**
     * 批量移动素材分组
     */
    Boolean batchMoveToGroup(SourceMoveRequest moveRequest);
}